﻿using GDM.Hogar.Managers.Contratos;
using System;
using System.Windows.Forms;

namespace GDM.Hogar.Aplicacion.Formularios.Configuracion
{
    public partial class FrmConfiguracion
#if DEBUG
 : AdaptadorFrm
#else
            : Frmbase
#endif
    {
        protected override string Titulo
        {
            get { return "Configuracion"; }
        }

        public Action<Entidades.Hogar> OnHogarActualizado;  

        public FrmConfiguracion(IVinculoManager vinculoManager, IObraSocialManager obraSocialManager,
                                IServicioEmergenciaManager servicioEmergenciaManager, IPersonalCocinaManager personalCocinaManager,
                                ITareaManager tareaManager, IProveedorManager proveedorManager, ICargoManager cargoManager,
                                IHogarManager hogarManager)
        {
            if (vinculoManager == null)
                throw new ArgumentNullException("vinculoManager");
            if (obraSocialManager == null)
                throw new ArgumentNullException("obraSocialManager");
            if (servicioEmergenciaManager == null)
                throw new ArgumentNullException("servicioEmergenciaManager");
            if (personalCocinaManager == null)
                throw new ArgumentNullException("personalCocinaManager");
            if (tareaManager == null)
                throw new ArgumentNullException("tareaManager");
            if (proveedorManager == null)
                throw new ArgumentNullException("proveedorManager");
            if (cargoManager == null)
                throw new ArgumentNullException("cargoManager");
            if (hogarManager == null)
                throw new ArgumentNullException("hogarManager");

            InitializeComponent();

            var ucVinculos = new VinculoUC(vinculoManager);
            tpVinculos.Controls.Add(ucVinculos);
            var ucObrasSociales = new ObraSocialUC(obraSocialManager);
            tpObrasSociales.Controls.Add(ucObrasSociales);
            var ucServicioEmergencia = new ServicioEmergenciaUC(servicioEmergenciaManager);
            tpServiciosEmergencia.Controls.Add(ucServicioEmergencia);
            var ucPersonalCocina = new PersonalCocinaUC(personalCocinaManager);
            tpPersonalCocina.Controls.Add(ucPersonalCocina);
            //var ucTarea = new TareaUC(tareaManager);
            //tpTareas.Controls.Add(ucTarea);
            //var ucProveedor = new ProveedorUC(proveedorManager);
            //tpProveedores.Controls.Add(ucProveedor);
            var ucHogar = new HogarUC(hogarManager);
            tpHogar.Controls.Add(ucHogar);
            var ucCargo = new CargoUC(cargoManager);
            tpCargos.Controls.Add(ucCargo);
        }

        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var tabControl = sender as TabControl;
            if (tabControl == null) return;

            var userControl = tabControl.SelectedTab.Controls[0] as IUserControl;
            if (userControl != null) userControl.LimpiarValidador();
        }
    }
}